<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // function Person(name,age){
        //     this.name = name;
        //     this.age = age;
        //     this.jump = function(){
        //         console.log('jumpp');
        //     }
        // }
        // let p1 = new Person('iu',18);
        // p1.jump();
        // console.log(p1);
        // Person.prototype.sex = '男';//在构造函数的原型对象上添加的属性
        // Person.prototype.hobby = function(){//在构造函数的原型对象上添加的方法
        //     console.log('吃');
        // }
        // // console.dir(Person);
        // Person.prototype.hobby();
        // console.log(Person.prototype.sex);
        // Person.like = function(){
        //     console.log('东方闪电发');
        // }
        // p1.say = function(){
        //     console.log('salahei');
        // }
        // class Person{
        //     constructor(name,age){
        //         this.name = name;
        //         this.age = age;
        //         this.hobby = function(){
        //             console.log('iuiu');
        //         }
        //     }
        //     like(){
        //         console.log('吃');
        //     }
        //     sex = '女';
        //     static say(){
        //         console.log('我好累');
        //     }
        // }
        // let p1 = new Person('iuu',18);
        // console.log(p1);
        // class Person{
        //     constructor(name,age){
        //         this.name = name;
        //         this.age = age;
        //         this.say = function(){
        //             console.log('我好累');
        //             console.log(this);//指向实例对象
        //         }
        //     }
        //     //给这个构造函数的原型对象添加属性或方法
        //     like(){
        //         console.log('111');
        //         console.log(this);//指向实例对象
        //     }
        //     //添加属性会让所有实例对象都被添加上
        //     sex = '女';
        //     //给Person自身添加属性或方法
        //     static hobby(){
        //         console.log('222');
        //         console.log(this);//指向Person
        //     }
        // }
        // let p1 = new Person('iu',19);
        // console.log(p1);
        // //构造函数的原型对象的属性或方法的调用方式
        // Person.prototype.like();
        // //实例对象上的属性的调用方式
        // console.log(p1.sex);
        // //Person自身的属性或方法调用方式
        // Person.hobby();
        // let foo = Person.prototype.like();//吧like（）这个函数传值给了foo，foo例现在就是这个函数 foo里this是指向window的 但是还算是在class类中的this指向
        // console.log(foo);//这里的this指向为undefined 因为在class类中是开启了严格模式 在严格模式下this禁止指向window this指向为undefined
        // class Person{
        //     constructor(name,age){
        //         this.name = name;
        //         this.age = age;
        //         this.like = function(){
        //             console.log('喜欢');
        //         }
        //     }
        //     hobby(){
        //         console.log('爱好');//这是在构造函数的原型对象上添加方法
        //     }
        //     sex = '女';//看起来像是在构造函数的对象上添加属性 其实是在构造函数的实例对象上添加属性 并且只要是Person是理出来的对象都会有这个属性
        //     static say(){
        //         console.log('喊');//给Person添加方法
        //     }
        // }
        // let p1 = new Person('iu',18);
        // Person.prototype.hobby();//调用构造函数的原型对象上的hobby方法
        // function foo(){
        //     console.log(this);
        // }
        // foo();//window
        // let obj = {
        //     name:"tom",
        //     age:18,
        //     jump(){
        //         console.log(this);
        //     }
        // }
        // obj.jump();
        // let test = obj.jump;
        // test();
        // class Person{
        //     constructor(name,age){
        //         this.name = name;
        //         this.age = age;
        //         this.hobby = function(){
        //             console.log('好累');
        //         }
        //     }
        //     like(){
        //         console.log('睡觉');
        //     }
        //     sex = '女';
        //     static sey(){
        //         console.log('say');
        //     }
        // }
        // let p1 = new Person('iu',18);
        // let p2 = new Person('tom',10);
        // console.log(p1);
        // console.log(p2);
        // console.dir(Person);
        // let p1 = new Promise((resolve,reject)=>{
        //     if(true){
        //         resolve('成功');
        //     }else{
        //         reject('失败');
        //     }
        // })
        // p1.then(data=>{
        //     console.log(data);
        // })
        // let p2 = Promise.resolve('1234');
        // p2.then(data=>{
        //     console.log(data);
        // })
        // let p3 = Promise.resolve(['iu',526,'seola']);
        // p3.then(data=>{
        //     console.log(data);
        // })
        // let p4 = Promise.all([p2,p3,p1]);
        // console.log(p4);
        // let p5 = Promise.race([p1,p2,p3]);
        // console.log(p5);
        // $('.btn').click(async()=>{
        //     let result = await p5;
        // })
    </script>
</body>
</html>